grep یکی از قدرتمندترین و پرکاربردترین ابزارهای خط فرمان در لینوکس است.
نام grep مخفف Global Regular Expression Print است.
grep برای جستجوی یک الگو (Pattern) در فایلها یا خروجی دستورات استفاده میشود
و خطوطی که با آن الگو مطابقت داشته باشند را نمایش میدهد.
کاربردهای رایج در مدیریت سیستم:
/var/log/syslog)/etc/passwd)توضیح: الگوی جستجو، گزینهها و فایل(هایی) که باید جستجو شوند.
جستجوی کلمه root در فایل /etc/passwd.
جستجوی خطوطی که با sh پایان مییابند. ($ یعنی انتهای خط)
معکوس (Invert): نمایش خطوطی که شامل bash نیستند.
📌 خلاصه دستورات پرکاربرد grep
| گزینه | توضیح |
|---|---|
-i |
جستجوی بدون حساسیت به حروف بزرگ/کوچک (Case-Insensitive) |
-v |
نمایش خطوطی که با الگو مطابقت ندارند (Invert Match) |
-r یا -R |
جستجوی بازگشتی در دایرکتوریها و زیردایرکتوریها |
-n |
نمایش شماره خط (Line Number) |
-c |
فقط نمایش تعداد خطوط مطابق (Count) |
-l |
فقط نمایش نام فایلهای حاوی الگو (Files with match) |
-w |
جستجوی کلمه کامل (Whole Word) |
-A N |
نمایش N خط بعد از خط پیدا شده (After) |
-B N |
نمایش N خط قبل از خط پیدا شده (Before) |
-C N |
نمایش N خط قبل و بعد (Context) |
-E |
استفاده از عبارت با قاعده گسترده (Extended Regex) — معادل egrep |
-F |
الگو را به عنوان رشته ثابت در نظر بگیر (معادل fgrep) |
--color=auto |
هایلایت کردن الگوی پیدا شده با رنگ |
جستجوی کلمه error (با هر حالت نوشتاری: error, ERROR, Error) در فایل لاگ سیستم.
جستجوی کلمه password در همه فایلهای دایرکتوری /etc/ و زیردایرکتوریهای آن.
نمایش شماره خط (۱) همراه با خط پیدا شده.
فقط تعداد خطوطی که شامل root هستند را نشان میدهد.
فقط کلمه to را پیدا میکند، نه کلماتی مثل today یا tomorrow.
نمایش ۱ خط قبل و ۲ خط بعد از هر خط حاوی error.
یکی از قدرتمندترین کاربردهای grep، فیلتر کردن خروجی سایر دستورات است.
پیدا کردن فرایندهای مربوط به firefox.
پیدا کردن دستورات قبلی که با sudo شروع شدهاند.
نمایش فقط دایرکتوریها (خطوطی که با d شروع میشوند).
^$ قابل جستجو است
(^ = ابتدای خط، $ = انتهای خط).
^pattern خطوطی که با الگو شروع میشوند را پیدا میکند.
pattern$ خطوطی که به الگو ختم میشوند را پیدا میکند.
خطوطی که با root شروع میشوند.
خطوطی که به bash ختم میشوند.
پیدا کردن خطوط خالی در فایل.
حذف خطوط خالی از فایل.
میتوانید grep را با find ترکیب کنید تا در میان فایلهای خاص جستجو کنید:
پیدا کردن فایلهای .conf که شامل کلمه error هستند.
| دستور | کاربرد |
|---|---|
grep pattern file |
جستجوی الگو در فایل |
grep -i pattern file |
جستجوی بدون حساسیت به حروف بزرگ/کوچک |
grep -v pattern file |
نمایش خطوطی که الگو را ندارند |
grep -n pattern file |
نمایش با شماره خط |
grep -c pattern file |
فقط تعداد خطوط مطابق |
grep -r pattern /path/ |
جستجوی بازگشتی در دایرکتوری |
grep -w pattern file |
جستجوی کلمه کامل |
grep "^pattern" file |
خطوطی که با الگو شروع میشوند |
grep "pattern$" file |
خطوطی که به الگو ختم میشوند |
cmd | grep pattern |
فیلتر کردن خروجی یک دستور |
/etc/passwd کاربرانی که از /bin/bash استفاده میکنند را پیدا کنید.grep -i کلمه error را در /var/log/syslog جستجو کنید.ps aux | grep فرایندهای مربوط به firefox یا chrome را پیدا کنید.grep -v "^$" حذف کنید.grep -r یک کلمه خاص را در دایرکتوری /etc/ جستجو کنید.